package com.tarena.day0924;
/**
 * 
 * 文件名必须有和共有类名一致Demo.java
 * 1类一定有构造器
 * 2子类一定调用父类构造器
 * 	A子类构造器中，默认使用super()调用父类无参数构造器
 * 	B如果父类没有无参构造器，子类必须明确使用super()调用具体的父类构造器
 *
 */
public class Demo {
	public static void main(String[] args) {
		Goo g=new Goo();
		Koo k=new Koo();
		Noo n=new Noo(2);
	}
}
class Moo{
	public Moo(int a){
		System.out.println("Call Moo(int)");
	}
}

//class Noo extends Moo{}//编译错误，父类没有无参构造器
class Noo extends Moo{
//	public Noo(){}//编译错误，父类没有无参构造器
	public Noo(int xI){
		super(xI);//子类明确调用父类
	}
	
}
class Foo{
	public Foo(){
	System.out.println("Call Foo()");
	}
}
class Koo extends Foo{}
class Goo extends Foo{//子类默认调用父类型构造器
	public Goo() {
		super();//子类调用父类构造器
	}
}
